(define (primo? x)
  (primo-iter 2 x))

(define (primo-iter divisor x)
  (cond ((= divisor x) #t)
        ((= 0 (% x divisor)) #f)
        ((> (* divisor divisor) x) #t)
        (else (primo-iter (+ divisor 1) x))))

(define (% a b)
  (cond ((< a b) a)
        ((< (- a b) b) (- a b))
        (else (% (- a b) b))))


(primo? 29)